package com.xdcplus.web.service.wip;

import com.xdcplus.mp.service.BaseService;
import com.xdcplus.pager.vo.PageVO;
import com.xdcplus.web.common.pojo.entity.WipMarkingPackInfo;
import com.xdcplus.web.common.pojo.dto.WipMarkingPackInfoDTO;
import com.xdcplus.web.common.pojo.dto.WipMarkingPackInfoFilterDTO;
import com.xdcplus.web.common.pojo.vo.WipMarkingElSummaryVO;
import com.xdcplus.web.common.pojo.vo.WipMarkingPackInfoVO;

import java.util.List;


/**
 * (WipMarkingPackInfo)表服务接口层
 *
 * @author bullion.yan
 * @since 2024-11-28 18:34:28
 */
public interface WipMarkingPackInfoService extends BaseService<WipMarkingPackInfo, WipMarkingPackInfo, WipMarkingPackInfoVO> {

    /**
     * 添加(WipMarkingPackInfo)
     *
     * @param wipMarkingPackInfoDTO (WipMarkingPackInfoDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveWipMarkingPackInfo(WipMarkingPackInfoDTO wipMarkingPackInfoDTO);

    /**
     * 修改(WipMarkingPackInfo)
     *
     * @param wipMarkingPackInfoDTO (WipMarkingPackInfoDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean updateWipMarkingPackInfo(WipMarkingPackInfoDTO wipMarkingPackInfoDTO);

    /**
     * 批量保存或更新(WipMarkingPackInfo)
     *
     * @param wipMarkingPackInfoList (WipMarkingPackInfoList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatch(List<WipMarkingPackInfo> wipMarkingPackInfoList);

    /**
     * 批量保存或更新(WipMarkingPackInfoDTOList)
     *
     * @param wipMarkingPackInfoDTOList (WipMarkingPackInfoDTOList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatchByDTOList(List<WipMarkingPackInfoDTO> wipMarkingPackInfoDTOList);

    /**
     * 删除(WipMarkingPackInfo)
     *
     * @param id (WipMarkingPackInfo)主键
     * @return {@link Boolean} 是否成功
     */
    Boolean deleteWipMarkingPackInfoLogical(Long id);
    
    Boolean deleteWipMarkingPackInfoByIds(String ids);

    /**
     * 查询(WipMarkingPackInfo)
     *
     * @param wipMarkingPackInfoFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<WipMarkingPackInfoVO>} 状态信息
     */
    List<WipMarkingPackInfoVO> queryWipMarkingPackInfoVOList(WipMarkingPackInfoFilterDTO wipMarkingPackInfoFilterDTO);

    /**
     * 查询(WipMarkingPackInfo)
     *
     * @param wipMarkingPackInfoFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<WipMarkingPackInfoVO>} 状态信息
     */
    PageVO<WipMarkingPackInfoVO> queryWipMarkingPackInfo(WipMarkingPackInfoFilterDTO wipMarkingPackInfoFilterDTO);

    /**
     * 查询一个
     *
     * @param id (WipMarkingPackInfo)主键
     * @return {@link WipMarkingPackInfoVO} (WipMarkingPackInfo)信息
     */
    WipMarkingPackInfoVO queryWipMarkingPackInfoById(Long id);

    /**
     * 根据标签ID查询
     * @param markingId
     * @return
     */
    List<WipMarkingPackInfoVO> queryByMarkingId(Long markingId);
}
